package com.api.sdk;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import java.util.HashMap;
import java.util.Map;

public class JsonParseUtil {

    public static HashMap<String, Object> parseJson(String json) {
        return JSONUtil.toBean(json, HashMap.class);
    }

    public Object getValue(HashMap<String, Object> hashMap, String key) {
        for (Map.Entry<String, Object> entry : hashMap.entrySet()) {
            if (entry.getKey().equals(key)) {
                return entry.getValue();
            }
            if (entry.getValue() instanceof JSONObject) {
                return getValue((JSONObject) entry.getValue(), key);
            }
            if (entry.getValue() instanceof JSONArray) {
                return getValue((JSONArray) entry.getValue(), key);
            }
        }
        return null;
    }

    public Object getValue(JSONObject json, String key) {
        for (Map.Entry<String, Object> entry : json) {
            if (entry.getKey().equals(key)) {
                return entry.getValue();
            }
            if (entry.getValue() instanceof JSONObject) {
                return getValue((JSONObject) entry.getValue(), key);
            }
            if (entry.getValue() instanceof JSONArray) {
                return getValue((JSONArray) entry.getValue(), key);
            }
        }
        return null;
    }

    public Object getValue(JSONArray json, String key) {
        for (Object o : json) {
            return getValue((JSONObject) o, key);
        }
        return null;
    }

}
